package cn.edu.guet.mapper.editor;

import cn.edu.guet.bean.editor.Badge;
import cn.edu.guet.bean.editor.EditorUser;
import cn.edu.guet.bean.editor.Option;
import cn.edu.guet.bean.editor.Post;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
@Mapper
public interface PostMapper {
    //插入帖子
    int insertPost(Post post);
    //通过id搜索帖子
    Post selectPostById(String pid);
    //通过id搜组织
    String selectGnameById(String userid);
    //通过id搜索用户
    EditorUser selectUserById(String userid);
    //点赞帖子
    void insertGiveup(String pid, String userid,String gdate);
    //取消点赞
    void deleteGiveup(String pid,String userid);
    //查询帖子中的点赞数量
    int selectPostGiveup(String pid);
    //更新点赞数量
    void updatePostGiveup(int con, String pid);
    //更新帖子内容
    void updatePost(Post post);
    //收藏帖子
    void collectPost(String userid, String pid,String cdate);
    //查询帖子的收藏数量
    int selectPostCollection(String pid);
    //更新收藏数量
    void updatePostCollection(int con, String pid);
    //取消收藏
    void deleteCollection(String userid, String pid);
    //删除帖子
    void deletePost(String pid);
    //查询此帖子是否被此用户点赞
    String selectGiveupOrNot(String pid, String userid);
    //查询此帖子是否被此用户收藏
    String selectCollectOrNot(String pid, String userid);
    //上传父评论
    void insertfatherDiscuss(int pid,int userid,String comcontent,String comtime,int comup,int fatherid,int useredid);
    //查询所有的帖子类型以及名称
    List<Option> selectSelect();
    //通过帖子id查询用户id
    String selectUseridByPid(String pid);
    //在user表中查询用户的积分信息
    String selectUserPoint(String userid);
    //在limit表中查询用户的当天积分信息
    String selectUserPointByDay(String userid,String date);
    //向用户表中更新积分
    int updateGradeOnUser(String userid,int totalgrade);
    //向用户当日积分上限表中更新积分
    int updateGradeOnUP(String userid,String ldate,int lgrade);
    //向用户当日积分上限表中插入积分
    int insertGradeOnUP(int userid, int lgrade, String ldate, String clock);
    //通过pid，userid查询点赞日期
    String selectGiveupDate(String userid,String pid);
    //通过pid，userid查询收藏日期
    String selectCollectDate(String userid,String pid);
    //通过userid查询用户获得的徽章
    List<Badge> selectBadgeByUser(String userid);
    //通过pid查询帖子的状态以及日期
    Post selectPostSDByPid(String pid);
    //查询当前用户的身份
    String selectUserRole(String userid);
}
